package com.shop.cereshop.agent.config;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

/**
 * MyBatis Plus 元数据对象处理器
 * 用于自动填充创建时间和更新时间字段
 *
 * @author lx
 * @date 2025/11/3 11:38
 * @version 1.0
 */
@Component // 注入Spring容器
public class MyMetaObjectHandler implements MetaObjectHandler {
  // 插入时填充
  @Override
  public void insertFill(MetaObject metaObject) {
    // 给 createTime 赋值（若字段为 null，则填充当前时间）
    this.setInsertFieldValByName("createTime", LocalDateTime.now(), metaObject);
    // 给 updateTime 赋值（插入时也需要填充）
    this.setInsertFieldValByName("updateTime", LocalDateTime.now(), metaObject);
  }

  // 更新时填充
  @Override
  public void updateFill(MetaObject metaObject) {
    // 给 updateTime 赋值（更新时填充当前时间）
    this.setUpdateFieldValByName("updateTime", LocalDateTime.now(), metaObject);
  }
}